1.5x speed increase by using cmp instead of crc32 #61
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After seeing how switching from MD5 to CRC32 cut down our rebalance time by a couple of weeks, I rethought the checksum process to identify even more speed gains.
Since the goal is to check that the new file is an exact copy of the original file, byte-level comparison should be a good alternative to calculating a checksum for the whole file. A
cmp
operation will likely always be faster than any combination of operations used to calculate a checksum. To my delight, this yielded another 1.5x speed improvement.Edit: Apologies for the misleading commit message. I was looking only at the user time rather than the total time. The total time shows 1.5x speed improvement.